<html>
<head>
	<meta charset="UTF-8">
	<meta content="IE=edge" http-equiv="X-UA-Compatible">
	<meta content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width" name="viewport">
	<title>3974：[WF2013]Up a Tree</title>
	<!-- css -->
	<link href="../css/base.min.css" rel="stylesheet">
	<link href="../css/project.min.css" rel="stylesheet">
	
	<!-- favicon -->
	<!-- ... -->
</head>
<body class="page-brand">
	<header class="header header-transparent header-waterfall ui-header">
		<ul class="nav nav-list pull-left">
			<li>
				<a data-toggle="menu" href="#menu">
					<span class="icon icon-lg">menu</span>
				</a>
			</li>
		</ul>
		<a class="header-logo header-affix-hide margin-left-no margin-right-no" data-offset-top="213" data-spy="affix">[WF2013]Up a Tree</a>
		<span class="header-logo header-affix margin-left-no margin-right-no" data-offset-top="213" data-spy="affix">[WF2013]Up a Tree</span>
	</header>
	<nav aria-hidden="true" class="menu" id="menu" tabindex="-1">
		<div class="menu-scroll">
			<div class="menu-content">
				<a class="menu-logo" href="../index.html">BZOJ离线题库</a>
				<ul class="nav">
					<li>
						<a class="waves-attach" data-toggle="collapse" href="#problems">题目</a>
						<ul class="menu-collapse collapse in" id="problems">
							<li>
								<a class="waves-attach" href="../index.html">主页</a>
							</li>
							<li>
								<a class="waves-attach" href="../list.html">题目列表</a>
							</li>
						</ul>
					</li>
					<li>
						<a class="collapsed waves-attach" data-toggle="collapse" href="#about">关于</a>
						<ul class="menu-collapse collapse" id="about">
							<li>
								<a class="waves-attach" href="../about.html">关于此项目</a>
							</li>
						</ul>
					</li>
					
				</ul>
			</div>
		</div>
	</nav>
	<main class="content">
		<div class="content-header ui-content-header">
			<div class="container">
				<h1 class="content-heading">
                [WF2013]Up a Tree                </h1>
                <p>时间限制：1s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  空间限制：256MB</p>			</div>
		</div>
		<div class="container">
			<section class="content-inner margin-top-no">
				<div class="row">
					<div class="col-lg-13 col-md-13">
						<div class="card margin-bottom-no">
							<div class="card-main">
								<div class="card-inner">
									
                                <h3>题目描述</h3><p><div>Anatoly Cheng McDougal 在许多方面都是一个典型的新生。如果可以，他会尝试将代码剪切和粘贴从而替代从头写一段代码。显然，这种方法会无法避免地给他带来一些问题。例如，当他第一次学习树的先序，中序和后序遍历后，就写下了一段树的先序遍历的代码（如左下角所示），随后，他简单的剪切和粘贴的这段代码，然后将输出语句调整到正确的位置，并将过程（函数）重命名。但是，他忘记重新书写将会在内部被调用的过程（函数）名，从而导致生成了如下有问题的树的先序，中序和后序遍历代码。</div>
<div></div>
<div>void prePrint(TNode t)</div>
<div>{</div>
<div>output(t.value);</div>
<div>if (t.left != null)</div>
<div>prePrint(t.left);</div>
<div>if (t.right != null)</div>
<div>prePrint(t.right);</div>
<div>}</div>
<div></div>
<div>void inPrint(TNode t)</div>
<div>{</div>
<div>if (t.left != null)</div>
<div>prePrint(t.left);</div>
<div>output(t.value);</div>
<div>if (t.right != null)</div>
<div>prePrint(t.right);</div>
<div>}</div>
<div></div>
<div>void postPrint(TNode t)</div>
<div>{</div>
<div>if (t.left != null)</div>
<div>prePrint(t.left);</div>
<div>if (t.right != null)</div>
<div>prePrint(t.right);</div>
<div>output(t.value);</div>
<div>}</div>
<div></div>
<div>译者注 prePrint 先序遍历过程（函数），inPrint 中序遍历过程（函数），postPrint 后序遍历过程（函数），TNode 树结点类型，left 左儿子，right 右儿子，null 空结点，output 输出，void 空类型，if 条件语句标志。</div>
<div></div>
<div>此时，Anatoly 表现得不再像一个新生。他其实就测试了自己的代码！不幸地，当输出的结果不正确时，他又变回了新生样。他紧张起来，随即开始随机地改变三个过程中的调用，希望这能奏效。显然，情况更糟了。</div>
<div>Anatoly 的教授用一个随机的字符树测试了这段代码。当她看到了这段程序的输出之时，她已经正确地猜到了刚才发生的事情。但是，她并不想直接地浏览他的代码，相反地，她决定仅仅通过观察程序的输出，来重构 Anatoly 的代码。为了做到这一点，她正确地做了如下的假设：</div>
<div>1. 输出语句在各个过程（函数）已经在正确的位置。（例如，在中序遍历中，输出语句在两个递归调用中间）。</div>
<div>2. 在涉及到这三个过程（函数）的六次递归调用中，恰好有两个调用为先序遍历 (prePrint)，恰好两次为中序遍历 (inPrint)，还有恰好两次为后序遍历 (postPrint)，虽然有可能在错误的过程（函数）里。</div>
<div>不久教授就觉察到，从他的输出中，重构 Anatoly 的代码和测试数据并非易事，而且结果可能是多元的。你需要帮助他重构出所有可能的 Anatoly 的代码。另外，对于所有这样的重构，请您找到能够产生这种输出的，字典序最小的树（将会在输出中详述）。</div>
<div></div>
<p></p></p><hr/><h3>输入格式</h3><p><div>输入只有一个测试点，各点在三行分别有三个字符串：对于某棵树，Anatoly 的先序，中序和后序遍历的输出（和描述保持相同的顺序）。</div>
<div>每个字符串包含 n 个大写字母 （4 &le; n &le; 26），且无分隔。数据保证有解。</div>
<div></div>
<p></p></p><hr/><h3>输出格式</h3><p><div>对于测试点，输出所有可能的重构，以如下方式排序。</div>
<div>输出中，各个重构分为两部分。第一部分为单独一行描述 Anatoly 的代码: 先是两个 Anatoly 的先序遍历中的（递归）调用，随即是中序遍历中的（递归）调用，最后是后序遍历中的（递归）调用。调用用 Pre, In 和 Post 描述，空格隔开。例如，若 Anatoly 的代码正确，那么重构的输出应该是 Pre Pre In In Post Post。</div>
<div>第二部分包括三行描述会产生观察到的输出的输入数据。第一行为正确的先序遍历，第二行为正确的中序遍历，第三行为正确的后序遍历。</div>
<div>字典序最小的树拥有字典序最小的先序遍历。如果答案仍然多元，字典序最小的树为这当中拥有字典序最小的中序遍历的树。</div>
<div></div>
<p></p></p><hr/><h3>样例输入</h3><pre>HFBIGEDCJA
BIGEDCJFAH
BIGEDCJFAH</pre><hr/><h3>样例输出</h3><pre>Pre Post In Post In Pre
HFBJCDEGIA
BIGEDCJFAH
IGEDCJBAFH
</pre><hr/><h3>提示</h3><p><p>N&lt;=26</p>
<p></p></p><hr/><h3>题目来源</h3><p>没有写明来源</p>
								</div>
							</div>
						</div>
					</div>
				</div>
				
				
			</section>
		</div>
	</main>

	<div class="fbtn-container">
		<div class="fbtn-inner">
			<a class="fbtn fbtn-lg fbtn-brand-accent waves-attach waves-circle waves-light waves-effect" data-toggle="dropdown" aria-expanded="true"><span class="fbtn-text fbtn-text-left">Menu</span><span class="fbtn-ori icon">apps</span><span class="fbtn-sub icon">close</span></a>
			<div class="fbtn-dropup">
				<a class="fbtn fbtn-brand waves-attach waves-circle waves-light waves-effect" href="../list.html" target="_self"><span class="fbtn-text fbtn-text-left">题目列表</span><span class="icon">menu</span></a>
				<a class="fbtn fbtn-green waves-attach waves-circle waves-effect" href="../index.html" target="_self"><span class="fbtn-text fbtn-text-left">返回主页</span><span class="icon">home</span></a>
				<a class="fbtn waves-attach waves-circle waves-effect" href="http://www.lydsy.com/JudgeOnline/submitpage.php?id=3974" target="_blank"><span class="fbtn-text fbtn-text-left">提交代码</span><span class="icon">send</span></a>
				<a class="fbtn fbtn-orange waves-attach waves-circle waves-effect" href="http://www.lydsy.com/JudgeOnline/wttl/wttl.php?pid=3974" target="_blank"><span class="fbtn-text fbtn-text-left">试题讨论</span><span class="icon">chat</span></a>
				
			</div>
		</div>
	</div>

	<!-- js -->
	<script src="../js/jquery.min.js"></script>
	<script src="../js/base.min.js"></script>
	<script src="../js/project.min.js"></script>
</body>
</html>